package main

import (
	"encoding/json"
	"fmt"
	"io/ioutil"
	"math/rand"
	"os"
	"time"
)

func main(){
	var shuru string
	var i int
	name := []string{"张", "李", "王", "赵", "柳"}
	count :=map[string]int{}
	//判断文件是否存在
	_, err := os.Stat("D:\\三创\\go文件夹\\2023-03-30\\names.txt")
	if os.IsExist(err){
		fmt.Println("文件夹不存在，创建文件")
		os.Create("D:\\三创\\go文件夹\\2023-03-30\\names.txt")
		count = map[string]int{"张":0, "李":0, "王":0, "赵":0, "柳":0}

	} else{
		//读文件
		c, _:=ioutil.ReadFile("D:\\三创\\go文件夹\\2023-03-30\\names.txt")
		//转换字符串
		json.Unmarshal(c, &count)
	}

	fmt.Println(count)
	for len(name)>0{
		fmt.Println("按任意键抽取，按q退出：")
		fmt.Scanln(&shuru)
		if shuru == "q"{
			fmt.Println("结束抽取")
			break
		} else{
			rand.Seed(time.Now().Unix())   //随机种子(时间戳)
			//时间戳  从1970年1月1日到现在经历的秒数
			i = rand.Intn(len(name))
			fmt.Println(name[i], "同学回答问题")

			count[name[i]] +=1
			name = append(name[:i], name[(i+1):]...)
			fmt.Println("剩下同学：", name)
		}
	}
	fmt.Println(count)
	//写入文件
	file, e := os.OpenFile("D:\\三创\\go文件夹\\2023-03-30\\names.txt", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 777)
	if e != nil {
		fmt.Println(e)
	}
	data, _ :=json.Marshal(count)
	file.Write(data)
	defer file.Close()

}